<html>
<head><meta charset="utf-8"><title>Default CPU Feature Level · project-portable-simd · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/index.html">project-portable-simd</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html">Default CPU Feature Level</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="211398948"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211398948" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211398948">(Sep 27 2020 at 05:03)</a>:</h4>
<p>It's my understanding that, as far as CPU SIMD features go, by default:</p>
<ul>
<li>i586 has no features.</li>
<li>i686 and x86_64 targets have <code>sse</code> and <code>sse2</code></li>
<li>arm and aarch64 have no features</li>
<li>other arches also have no features I guess?</li>
</ul>



<a name="211398991"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211398991" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211398991">(Sep 27 2020 at 05:04)</a>:</h4>
<p>confirm/deny? Uh, maybe <span class="user-mention" data-user-id="143274">@Amanieu</span> would know this one.</p>



<a name="211399190"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211399190" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211399190">(Sep 27 2020 at 05:10)</a>:</h4>
<p>Some arm targets have neon. Some specify it in the arch string, but I think some others also that don't explicitly say neon have it as well</p>



<a name="211401464"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211401464" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211401464">(Sep 27 2020 at 06:30)</a>:</h4>
<p>aarch64 has Neon by default, I believe.</p>



<a name="211401485"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211401485" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211401485">(Sep 27 2020 at 06:31)</a>:</h4>
<p>I have not confirmed this exhaustively.</p>



<a name="211401727"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211401727" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211401727">(Sep 27 2020 at 06:38)</a>:</h4>
<p>Note that if so this says nothing about other ARM triples in that same "generation" (ARMv8). <em>Just</em> aarch64.</p>



<a name="211401863"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211401863" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211401863">(Sep 27 2020 at 06:43)</a>:</h4>
<p>and that aarch64 is specifically an execution state (yes, we're "long mode" now) of a specific ARM architecture right now (armv8a).</p>



<a name="211406344"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211406344" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211406344">(Sep 27 2020 at 08:59)</a>:</h4>
<p>well for the purposes of this one list, we're only concerned about specifically rust targets that start with <code>aarch64</code></p>



<a name="211414646"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211414646" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanieu <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211414646">(Sep 27 2020 at 12:38)</a>:</h4>
<p>I think armv7 may have neon, but I'm not sure.</p>



<a name="211429157"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211429157" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211429157">(Sep 27 2020 at 18:55)</a>:</h4>
<p>Neon is mostly a feature of the "ARMv7-A" profile but it is optional (it will <em>very likely</em> have Neon, though).</p>



<a name="211429174"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211429174" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211429174">(Sep 27 2020 at 18:55)</a>:</h4>
<p>I looked in the <code>rustc_target</code> crate and there didn't seem to be feature selections in the profiles there. Where else would it be defined?</p>



<a name="211429190"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211429190" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211429190">(Sep 27 2020 at 18:56)</a>:</h4>
<p>(or maybe i just looked in the wrong area of the crate?)</p>



<a name="211429220"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211429220" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211429220">(Sep 27 2020 at 18:56)</a>:</h4>
<p>doing some investigating, Linux kernels seem to assume aarch64 always has Neon/"Advanced SIMD", so we probably can as well.</p>



<a name="211429241"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211429241" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211429241">(Sep 27 2020 at 18:57)</a>:</h4>
<p>That's probably similar to assuming i686 has SSE2, even though pentium IIIs didn't have it, I believe</p>



<a name="211429293"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211429293" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211429293">(Sep 27 2020 at 18:58)</a>:</h4>
<p>given that based on everything I've read off the ARM site, they seem to say you will always have Neon on ARMv8-A/aarch64 too, I dunno.</p>



<a name="211429396"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211429396" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211429396">(Sep 27 2020 at 19:01)</a>:</h4>
<p>I think it's optional as far as the specification goes, but no one has actually manufactured a v8 core without neon</p>



<a name="211429443"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211429443" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211429443">(Sep 27 2020 at 19:02)</a>:</h4>
<p>It was optional in ARMv7A but that doesn't mean it's optional in ARMv8A. Anyways, the obvious solution is to just ask ARM. :^)</p>



<a name="211429475"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211429475" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211429475">(Sep 27 2020 at 19:03)</a>:</h4>
<p>In v8 VFP and NEON were combined so the only core without it would be soft float</p>



<a name="211429477"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211429477" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211429477">(Sep 27 2020 at 19:04)</a>:</h4>
<p>So I doubt one would ever be manufacturered</p>



<a name="211429543"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211429543" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211429543">(Sep 27 2020 at 19:05)</a>:</h4>
<p>v7 is more complicated because you can have vfpv3 or v4</p>



<a name="211429550"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211429550" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211429550">(Sep 27 2020 at 19:05)</a>:</h4>
<p>Or vfp with no neon</p>



<a name="211429879"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211429879" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211429879">(Sep 27 2020 at 19:12)</a>:</h4>
<p>I believe v8-A without Neon would actually violate the spec for ARMv8-A then.<br>
ARMv8-M without Neon though would happen.</p>



<a name="211429992"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211429992" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211429992">(Sep 27 2020 at 19:15)</a>:</h4>
<p>because I believe "has hardware support for floats" is part of the v8A spec. It's <em>not</em> part of the v8M or v8R, though I believe those can also <em>opt in</em> to it, but they will never (as far as I know) use the aarch64 profile.</p>



<a name="211430072"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211430072" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211430072">(Sep 27 2020 at 19:17)</a>:</h4>
<p>and aarch64 is a subset of ARMv8A... if it can't do 64-bit execution, it can't do aarch64. I still think the best and obvious solution though is to literally just ask ARM, given they have shown up in rust-lang/rfcs</p>



<a name="211430135"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211430135" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211430135">(Sep 27 2020 at 19:19)</a>:</h4>
<p>keep bothering them like <a href="https://www.youtube.com/watch?v=yg5RgI2GeKk">https://www.youtube.com/watch?v=yg5RgI2GeKk</a></p>
<div class="youtube-video message_inline_image"><a data-id="yg5RgI2GeKk" href="https://www.youtube.com/watch?v=yg5RgI2GeKk"><img src="https://i.ytimg.com/vi/yg5RgI2GeKk/default.jpg"></a></div>



<a name="211430144"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211430144" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211430144">(Sep 27 2020 at 19:19)</a>:</h4>
<p>That sounds plausible. It also likely doesn't matter what arm says, since the rust target doesn't have to exactly match</p>



<a name="211430159"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211430159" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211430159">(Sep 27 2020 at 19:19)</a>:</h4>
<p>Well, yeah true, it's just convenient if we actually do.</p>



<a name="211430332"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211430332" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211430332">(Sep 27 2020 at 19:22)</a>:</h4>
<p>I'd like to always have Rust use triples that make sense, rather than e.g. maintaining compatibility with GCC or LLVM.</p>



<a name="211430408"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211430408" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211430408">(Sep 27 2020 at 19:24)</a>:</h4>
<p>I think with x86 and x86_64 triples that ship has sailed, everyone's used to whatever badness is currently around, but if we can make sense with other things? it'd be nice.</p>



<a name="211430846"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211430846" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211430846">(Sep 27 2020 at 19:34)</a>:</h4>
<p><a href="https://static.docs.arm.com/ddi0487/ea/DDI0487E_a_armv8_arm.pdf">https://static.docs.arm.com/ddi0487/ea/DDI0487E_a_armv8_arm.pdf</a> This is <em>the</em> authoritative document on ARMv8A. I found that their other documentation releases aimed at e.g. programmers mentioned they defer to <em>this</em>.<br>
<a href="https://static.docs.arm.com/102105/0100/102105_ArmARM_Fb_known_issues.pdf">https://static.docs.arm.com/102105/0100/102105_ArmARM_Fb_known_issues.pdf</a> Here is its errata.<br>
And in the ARMv8A programmer's guide: <a href="https://developer.arm.com/documentation/den0024/a/aarch64-floating-point-and-neon">https://developer.arm.com/documentation/den0024/a/aarch64-floating-point-and-neon</a></p>
<blockquote>
<p>Both floating-point and NEON are required in all standard ARMv8 implementations. However, implementations targeting specialized markets may support the following combinations:<br>
    No NEON or floating-point.<br>
    Full floating-point and SIMD support with exception trapping.<br>
    Full floating-point and SIMD support without exception trapping.</p>
</blockquote>



<a name="211430876"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211430876" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211430876">(Sep 27 2020 at 19:36)</a>:</h4>
<p>Ah there we go. So it's not technically required but is as far as the spec goes. Sounds like our answer</p>



<a name="211430920"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211430920" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211430920">(Sep 27 2020 at 19:36)</a>:</h4>
<p>So, from our perspective, I think we should basically say that we have three triples here, and our generic aarch64-unknown-linux-gnu should follow the "standard Neon/FP" assumption, and if someone is trying to compile for aarch64 and isn't using a different triple than normal, that's their problem.</p>



<a name="211430951"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211430951" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211430951">(Sep 27 2020 at 19:37)</a>:</h4>
<p>i believe also specifically the "no exception trapping" option, because llvm doesn't (yet) support floating exceptions.</p>



<a name="211431007"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211431007" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211431007">(Sep 27 2020 at 19:38)</a>:</h4>
<p>I think so, yes.<br>
I believe in practice "no NEON" is going to be ARMv8M and "ARMv8 NEON with different exception handling" is going to be ARMv8R.</p>



<a name="211431024"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211431024" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211431024">(Sep 27 2020 at 19:39)</a>:</h4>
<p>So this leads me back to the other question: where are these target defaults defined within the rust codebase?</p>



<a name="211431188"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211431188" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211431188">(Sep 27 2020 at 19:42)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/blob/0f9f0b384a0a3c997c1ea8f838f5591f12f96633/compiler/rustc_codegen_llvm/src/llvm_util.rs#L166">https://github.com/rust-lang/rust/blob/0f9f0b384a0a3c997c1ea8f838f5591f12f96633/compiler/rustc_codegen_llvm/src/llvm_util.rs#L166</a> Hmm.</p>



<a name="211431318"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211431318" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211431318">(Sep 27 2020 at 19:45)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/blob/85fbf49ce0e2274d0acf798f6e703747674feec3/compiler/rustc_target/src/spec/aarch64_linux_android.rs#L11">https://github.com/rust-lang/rust/blob/85fbf49ce0e2274d0acf798f6e703747674feec3/compiler/rustc_target/src/spec/aarch64_linux_android.rs#L11</a> <br>
Oh, here?</p>



<a name="211431488"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211431488" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211431488">(Sep 27 2020 at 19:49)</a>:</h4>
<p>Hmm, i686_pc_windows_msvc doesn't seem to have features set in it though</p>



<a name="211431552"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211431552" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211431552">(Sep 27 2020 at 19:50)</a>:</h4>
<p>does x86_64?</p>



<a name="211431570"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211431570" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211431570">(Sep 27 2020 at 19:50)</a>:</h4>
<p>doesn't appear that way</p>



<a name="211431584"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211431584" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211431584">(Sep 27 2020 at 19:51)</a>:</h4>
<p>unless setting <code>base.cpu</code> picks some features, which it totally might.</p>



<a name="211431593"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211431593" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211431593">(Sep 27 2020 at 19:51)</a>:</h4>
<p>but i mean, if so, then what features are part of what base cpu</p>



<a name="211431634"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211431634" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211431634">(Sep 27 2020 at 19:52)</a>:</h4>
<p>might. It seems the current story for feature setting is a bit chaotic.</p>



<a name="211431647"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211431647" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211431647">(Sep 27 2020 at 19:52)</a>:</h4>
<p>"yay"</p>



<a name="211431676"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Default%20CPU%20Feature%20Level/near/211431676" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Default.20CPU.20Feature.20Level.html#211431676">(Sep 27 2020 at 19:53)</a>:</h4>
<p>OH LOOK, CLEANING UP TECHNICAL DEBT. I HAVEN'T BEEN DOING ANY OF THAT RECENTLY. &lt;_&lt;</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>